-- *****************************************************************
-- REDSTONE-ADDRESS-POOL-MIB
--
-- Redstone Communications Inc. Enterprise MIB
-- Address Pool MIB
--
-- Copyright 1999 Redstone Communications, Incorporated.
-- All Rights Reserved.
-- *****************************************************************

REDSTONE-ADDRESS-POOL-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, 
    OBJECT-TYPE, 
    Integer32, 
    IpAddress
        FROM SNMPv2-SMI

    DisplayString,
    RowStatus
        FROM SNMPv2-TC

    MODULE-COMPLIANCE, 
    OBJECT-GROUP  
        FROM SNMPv2-CONF

    rsMgmt
                FROM REDSTONE-SMI;


rsAddressPoolMIB MODULE-IDENTITY
    LAST-UPDATED "9906010000Z"
    ORGANIZATION "Redstone Communications Inc."
        CONTACT-INFO
        "
        Redstone Communications, Inc.
                5 Carlisle Road
        Westford MA 01886
        USA
        Tel:    +1-978-692-1999
                Email:  mib@redstonecom.com
        "
        DESCRIPTION
                "The Address Pool MIB for the
                Redstone Communications Inc. enterprise."
        REVISION      "9906010000Z"
        DESCRIPTION
                "Initial version of this MIB module."
    ::= { rsMgmt 21 }


-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Textual conventions
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- No textual conventions are defined in this MIB



-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Managed object groups
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


rsAddressPoolObjects       OBJECT IDENTIFIER ::= {rsAddressPoolMIB 1}
rsAddressPool              OBJECT IDENTIFIER ::= {rsAddressPoolObjects 1}

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Managed objects for Address Pools
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

rsAddressPoolTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsAddressPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of IP address pools. Each pool describes a range of 
        IP addresses available for assignment for dynamic connections."
    ::= { rsAddressPool 1 }

rsAddressPoolEntry OBJECT-TYPE
    SYNTAX      RsAddressPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry describing an IP address pool."
    INDEX { rsAddressPoolIndex }
    ::= { rsAddressPoolTable 1 }

RsAddressPoolEntry ::= SEQUENCE {
    rsAddressPoolIndex              Integer32,
    rsAddressPoolName               DisplayString,
    rsAddressPoolRowStatus          RowStatus,
    rsAddressPoolStart              IpAddress,
    rsAddressPoolEnd                IpAddress,
    rsAddressPoolSize               Integer32,
    rsAddressPoolInUse              Integer32
}

rsAddressPoolIndex OBJECT-TYPE
    SYNTAX      Integer32(1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An arbitrary integer index that distinguishes this address pool."
    ::= { rsAddressPoolEntry 1 }

rsAddressPoolRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of address pools.
        
        Only value 'active' will be observed with GET.
        Only values 'createAndGo' and 'destroy' are supported
        for SET.

        Once created, entry content cannot be modified except
        by deleting and recreating an entry with the same index."
    ::= { rsAddressPoolEntry 2 }

rsAddressPoolName OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(1..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The name of this address pool."
    ::= { rsAddressPoolEntry 3 }

rsAddressPoolStart OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The starting IP address for the range of 
        addresses comprising this pool."
    ::= { rsAddressPoolEntry 4 }

rsAddressPoolEnd OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The ending IP address for the range of 
        addresses comprising this pool."
    ::= { rsAddressPoolEntry 5 }

rsAddressPoolSize OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of addresses available in this pool."
    ::= { rsAddressPoolEntry 6 }

rsAddressPoolInUse OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of addresses currently allocated 
        from this pool."
    ::= { rsAddressPoolEntry 7 }

--
-- rsAddressPoolIndex selection for creating new address pools 
--

rsAddressPoolNextPoolIndex OBJECT-TYPE
    SYNTAX      Integer32(1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Coordinate rsAddressPoolIndex value allocation for entries
        in rsAddressPoolTable.

        A GET of this object returns the next available rsAddressPoolIndex
        value to be used to create an entry in the associated
        rsAddressPoolTable; or zero, if no valid rsAddressPoolIndex is
        available. This object also returns a value of zero when
        it is the lexicographic successor of a varbind presented
        in an SNMP GETNEXT or GETBULK request, for which circumstance
        it is assumed that ifIndex allocation is unintended.

        Successive GETs will typically return different
        values, thus avoiding collisions among cooperating
        management clients seeking to create table entries
        simultaneously.
        "
    ::= { rsAddressPool 2 }

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Notification control objects
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- No notifications are defined in this MIB. Placeholder follows.

-- rsAddressPoolTrapControl      OBJECT IDENTIFIER ::= { rsAddressPoolMIB 2 }



-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Notifications
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- No notifications are defined in this MIB. Placeholder follows.

-- The following two OBJECT IDENTIFIERS are used to define SNMPv2 
-- Notifications that are easily translated into SNMPv1 Traps.

-- rsAddressPoolTraps            OBJECT IDENTIFIER ::= { rsAddressPoolMIB 3 }
-- rsAddressPoolTrapPrefix       OBJECT IDENTIFIER ::= { rsAddressPoolTraps 0 }



-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Conformance information
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

rsAddressPoolMIBConformance
             OBJECT IDENTIFIER ::= { rsAddressPoolMIB 4 }
rsAddressPoolMIBCompliances
             OBJECT IDENTIFIER ::= { rsAddressPoolMIBConformance 1 }
rsAddressPoolMIBGroups
             OBJECT IDENTIFIER ::= { rsAddressPoolMIBConformance 2 }


-- compliance statements

rsAddressPoolCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for systems providing
        local address pools."
    MODULE  -- this module
    MANDATORY-GROUPS { rsAddressPoolGroup }
    ::= { rsAddressPoolMIBCompliances 1 }



-- units of conformance

rsAddressPoolGroup OBJECT-GROUP
    OBJECTS {
        rsAddressPoolRowStatus,
        rsAddressPoolName,
        rsAddressPoolStart,
        rsAddressPoolEnd,
        rsAddressPoolSize,
        rsAddressPoolInUse,
        rsAddressPoolNextPoolIndex
        }
    STATUS      current
    DESCRIPTION
        "The basic collection of objects providing management
        of local address pools."
    ::= { rsAddressPoolMIBGroups 1 }

END